unsigned long pattern_replace(unsigned long input_int) {
    int i = 31;

    while (i >= 2) {
        /* 提取第 i 到 i-2 位的 3 位模式 */
        unsigned long mask = 0b111UL << (i - 2);
        unsigned long bits = (input_int & mask) >> (i - 2);

        if (bits == 0b101) {
            /* 清除原有的 101 */
            input_int &= ~mask;

            /* 设置成 011 */
            input_int |= (0b011UL << (i - 2));

            /* 跳过3位，避免重叠匹配 */
            i -= 3;
        } else {
            /* 向低位移动一位继续匹配 */
            i--;
        }
    }

    return input_int;
}
